A Customisable Memory Management Framework for C++

نویسندگان

  • Giuseppe Attardi
  • Tito Flagella
  • Pietro Iglio
چکیده

Automatic garbage collection relieves programmers from the burden of managing memory themselves and several techniques have been developed that make garbage collection feasible in many situations, including real time applications or within traditional programming languages. However optimal performance cannot always be achieved by a uniform general purpose solution. Sometimes an algorithm exhibits a predictable pattern of memory usage that could be better handled speciically, delaying as much as possible the intervention of the general purpose collector. This leads to the requirement for algorithm speciic customisation of the collector strategies. We present a dynamic memory management framework which can be customised to the needs of an algorithm, while preserving the convenience of automatic collection in the normal case. The Customisable Memory Manager (CMM) organises memory in multiple heaps. Each heap is an instance of a C++ class which abstracts and encapsulates a particular storage discipline. The default heap for collectable objects uses the technique of mostly copying garbage collection, providing good performance and memory compaction. Customisation of the collector is achieved exploiting object orientation by deening specialised versions of the collector methods for each heap class. The object oriented interface to the collector enables coexistence and coordination among the various collectors as well as integration with traditional code unaware of garbage collection. The CMM is implemented in C++ without any special support in the language or the compiler. The techniques used in the CMM are general enough to be applicable also to other languages. The performance of the CMM is analysed and compared to other conservative collectors for C/C++ in various conngurations.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Customisable Memory Management Framework

Memory management is a critical issue for many large object-oriented applications, but in C++ only explicit memory reclamation through the delete operator is generally available. We analyse diierent possibilities for memory management in C++ and present a dynamic memory management framework which can be customised to the need of speciic applications. The framework allows full integration and co...

متن کامل

A framework for Experience Management in Public Organisations

The Pellucid project developed an adaptable and customisable platform for enabling experience management in public organisations. A framework for experience management has been developed based on the generation of ‘active hints’ that are presented to the user according to working context. Working context encompasses both position in the work process and domain-specific characteristics. The pape...

متن کامل

Customising Object Allocation

Automatic garbage collection relieves programmers from the burden of managing memory themselves and several techniques have been developed that make garbage collection feasible in many situations , including real time applications or within traditional programming languages. However optimal performance cannot always be achieved by a uniform general purpose solution. Sometimes an algorithm exhib...

متن کامل

A Framework for Customisable Schema Evolution in Object-Oriented Databases

This paper describes an evolution framework supporting customisation of the schema evolution and instance adaptation approaches in an object database management system. The framework is implemented as an integral part of an interpreter for a language with a versioned type system and employs concepts from objectoriented frameworks and aspect-oriented programming to support flexible changes. Some...

متن کامل

The Posso Library for Polynomial System Solving

The PoSSo library is a sophisticated library of tools for solving systems of polynomial equations. Each tool is supplied as a framework, rather than as a traditional program library or as a self-contained package, providing a unusual level of exibility. Each framework consists of a collection of C++ classes, which allows the customisation of each tool. Customisation can happen either at compile...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Softw., Pract. Exper.

دوره 28  شماره 

صفحات  -

تاریخ انتشار 1998